<?php
/**
 * 整理计算结果输出到文本文件
 * Created by PhpStorm.
 * User: Usr
 * Date: 2018/8/20
 * Time: 7:42
 */

require_once 'config.php';
require_once 'mysqli_api.php';
require_once 'pub.php';
require 'vendor/autoload.php';
require 'Storage.php';

/**
 * 累计收益top1
 * 股票代码+top1对应的参数+top1对应的累加收益+top1对应的买卖点次数+top1对应的单次收益
 * @param $file 输出文件，路径和文件名
 */
function total_to_txt($file)
{
    $mongo = mongodb();
    $collect = "total";
    $str = 'top1' . "\n股票代码    对应参数    累加收益    买卖点次数   单次收益"; // 标题行

    inputFile($file, $str); // 输出一行

    $collection = $mongo->stock->$collect;
    $cursor = $collection->find([]);

    foreach ($cursor as $document) {
        $str = "\n" . $document['_id']; // 股票代码
        foreach ($document as $key => $value) {
            if (is_object($value) && $value->sell_num != 0 ) {
                $str .= "   $key"; // 对应参数
                $str .= "   " . round($value->total, 3); // 累计收益
                $str .= "   " . $value->sell_num; // 交易次数
                $str .= "   " . round($value->total / $value->sell_num, 3); // 平均单次收益
                inputFile($file, $str); // 输出一行
                break; // 只取top1
            }
        }
    }
}


/**
 * 平均收益top1
 * 股票代码+top1对应的参数+top1对应的累加收益+top1对应的买卖点次数+top1对应的单次收益
 * @param $file 输出文件，路径和文件名
 */
function avg_to_txt($file)
{
    $mongo = mongodb();
    $collect = "total";
    $str = 'top1' . "\n股票代码    对应参数    累加收益    买卖点次数   单次收益"; // 标题行

    inputFile($file, $str); // 输出一行

    $collection = $mongo->stock->$collect;
    $cursor = $collection->find([]);

    foreach ($cursor as $document) {
        $str = "\n" . $document['_id']; // 股票代码
        $avg_max = 0;
        foreach ($document as $key => $value) {
            // 排序并取出最大平均收益
            if (is_object($value) && $value->sell_num != 0 && $value->total / $value->sell_num > $avg_max) {
                $str2 = "   $key"; // 对应参数
                $str2 .= "  " . round($value->total, 3); // 累计收益
                $str2 .= "  " . $value->sell_num; // 交易次数
                $str2 .= "  " . round($value->total / $value->sell_num, 3); // 平均单次收益
            }
        }
        $str .= $str2; // 拼接
        inputFile($file, $str); // 输出一行
    }
}

total_to_txt('/Zdata/stock/total.txt');
avg_to_txt('/Zdata/stock/avg.txt');